查看原文
其他

智能标题生成在58招聘业务中的探索

高文龙 58技术 2022-03-15

导读

文本生成是自然语言处理(NLP)领域中非常重要且具有一定挑战性的分支。本文以实际业务中标题生成的需求为背景,结合主流的文本生成方法进行实践,并对当前的方法进行改进,有效提升了用户体验与招聘双方的连接效率,实现了为招聘业务赋能。


背景

文本生成作为自然语言处理领域的一个重要分支,近年来随着深度学习技术的不断发展,基于神经网络的文本生成技术得到了广泛的关注与应用。58同城作为国内互联网招聘行业巨擘,其招聘平台每天会有大量招聘信息发布及更新。这些招聘信息中存在着标题低质化、标题同质化等问题,比如许多帖子有着相同的标题例如清一色的都为厨师,这样会严重影响用户体验,降低招聘双方连接效率。为了解决这些问题,我们开发了一种基于职位信息的智能标题生成系统,该系统采用Pipeline、Seq2seq两种方式实现智能标题的生成,下面将从这两方面进行详细阐述。   


Pipeline方式生成标题

Pipeline方式按照“提取素材”、“整理素材”、“组织规划”的顺序实现标题生成流程,具体的过程如图1所示。

图1 Pipeline处理流程
1.提取素材
一份完整的招聘信息涵盖了“职位类别”、“岗位名称”、“薪资”、“福利”、“工作时间”、“工作环境”、“企业所属行业”、“企业具体地点”、“企业品牌”、“企业发展历程”等众多信息。
一方面,需要展示的职位标题长度非常有限,需要从这些信息中提取出适用于标题的素材。另一方面,不同类别、岗位的求职者所关注的内容不尽相同。例如:司机和厨师都希望获得“高工资”,但是司机还关心“是否自带车”、“驾驶证的级别”等,而厨师则更关心“菜系类别”、工作内容是“大厨”还是“帮厨”等。因此需要结合用户画像以及实际需求展示个性化的标题。
为了组建招聘业务相关的素材库,首先需要对发帖的内容进行对应的标签挖掘,鉴于招聘业务的特殊性,无法得到合适的词典,因此基于规则以及词典的传统方法无法使用,为此前期主要采用TF-IDF(词频-逆文件频率公式1)等算法对历史数据进行统计分析,得到不同类别的词在数据集中的重要程度,进而得到初步的数据,此外在对数据进一步分析时需要考虑词是否能“在一起”,即词的内部组成。从联合概率的角度来看,判断AB是否能够成为一个词,即P(AB)>>P(A)*P(B),另外还需要关注数据中词的运用程度,即左边和右边的相邻词的丰富程度。
在素材提取过程中,如果只关注词的内部组成,会导致提取到的素材只包含完整词的一部分,如“巧克”,如果只关注词与词之间的关系,同样会出现提取到的词只包含一部分,如去“了一”趟,看‘’了一”遍,因此需要结合凝固度(组合短语中字词的联合概率)、自由度(短语上下文的丰富程度,即信息熵)(具体定义见公式2与公式3)进一步对数据进行补充,最终得到了包含几万个素材点的素材库。
随着招聘业务需求的不断提升,传统统计挖掘方法已经无法满足需求。因此我们采用了深度学习模型来持续丰富素材库,以满足模型快速迭代的需求,目前与业界保持同样的进展,不仅使用斯坦福工具等相关工具实现命名实体识别,比如重要的专有名称、技能名称、工种名称等,另外我们还采用了业界常用的BiLSTM+CRF模型实现对数据库的扩充。

在素材库、素材库挖掘模型的基础上,我们可以快速的从新的招聘信息中获得相关的素材点信息。

2.整理素材
在获得素材之后需要对其进一步的整理:聚类和排序。

a) 为了生成言简意赅的标题,需要先对提取的素材进行语义聚类。当素材所属的标签类型差距较大,可以直接制定规则进行聚类。但多数情况下,很难仅仅通过规则获取好的聚类效果,所以我们采用了基于词向量余弦距离的Kmeans聚类算法来弥补规则的不足。

b) 其次要想从同类素材中获取最有价值的核心点,就要对这些素材点进行排序。这里既可以使用TF-IDF在整个素材库空间中对素材点进行排序,也可以使用基于BM25的TextRank算法在单个职位信息内对素材点进行排序,通常情况两者结合比单用一种效果更好。

3.组织规划
Pipeline方式的最后是将整理后的核心素材点以一定的顺序进行组织规划并输出智能标题,基于Pipeline方式的具体组成过程如图2所示。
a) 要想尽可能多地将核心点在简短的标题中展示出来,需要将一些特殊词汇进行压缩。比如:“月薪7000”可以压缩为“7k”;
b) 为了使标题表达更为流畅,可以在开头添加招聘词,如:“急招”、“诚聘”等。另外类型差距较大的核心词汇间使用连接符,如“+”等;
c) 尽管提取核心内容的时候已经进行聚类,但是无法完全保证信息没有冗余。最简单的判断方法是检查字符上的相互包含关系,有些情况下还要从语义层面判断是否重复,比如“高薪”和“收入高”属于语义重复;
d) 标题虽然不像长句那样有严格的语法要求,但是也需要一定的排列顺序。可以根据职位类型制定强规则进行排序,也可以统计历史数据中各类核心词汇的排列组合分布进行排序打分。

图2 基于Pipeline方式的标题组成过程

Seq2seq方式生成标题

Pipeline方式符合人们编辑标题的流程,但是处理步骤较多,每个步骤都会影响最终结果,很难统一建模,不利于快速迭代优化。所以,我们在Pipeline方式之外探索了seq2seq方式,下面从模型迭代过程来详细阐述。

1.基于LSTM单元的Seq2seq模型
我们的标题生成场景跟单文档的文本摘要过程近似,因此我们可以借鉴文本摘要生成的相关方法。文本摘要按照输出的类型可以分为抽取式和生成式摘要,抽取式需要从原文中抽取关键句与关键词,整个生成的摘要全部来源于原文。而生成式摘要则是根据原文生成新的词语以及原文中没有的短语进而组成新的摘要。根据业界的进展情况,我们首选应用于文本摘要的Bi-Lstm+Attention模型作为Baseline模型。通过实际实验发现该模型生成的结果面临着文本生成普遍存在的两个严重问题:生成的结果在原文中并不存在属于无中生有,生成的结果中存在重复性词汇,比如招聘中没有商业保险,生成的结果中存在,这与事实严重不符,比如“招聘普工月薪过万”,原文中没说多少工资。

图3 Pointer Generator Network模型
为此我们参考了Pointer Generator Network模型,模型构成如图3所示。该模型在Baseline的基础上,采用一个可训练的参数Pgen来控制从原文中复制还是从整个词表空间生成,解决了部分无中生有的问题。Pgen的具体产生过程是根据Baseline得到的注意力权重以及编码状态经过加权求和得到重要的上下文向量 ,并利用解码器解码器状态以及解码器的输入一起来计算 Pgen,这样就可以计算最终预测出一个词的概率。
另外其Coverage Attention机制将编码层的隐状态按照一定权重加和之后拼接到解码层的隐状态上,作为额外的信息,用先前的注意力权重决策来影响当前注意力权重的决策,这样就避免在同一位置重复,从而避免重复生成文本,起到了软对齐的作用,实现避免生成重复性结果。在实验过程中,该模型确实比Baseline取得了更好的效果。
在使用Pointer Generator Network模型进行训练的过程中,发现模型很多时候是从原文复制,结合智能标题的准确性要求,我们摒弃了生成的方式只保留复制的方式。
此外,为了更好的利用所有职位相关信息,我们将职位类别等其它职位信息与职位描述信息在Embedding层进行级联输入。改造后的网络模型主体采用Pointer Network,仍然保留Coverage Attention机制避免重复,其最终的实验结果相比前两个模型有提升,但是提升效果不明显。

2.基于Filed Gate+Dual Attention的Seq2seq模型
Pointer Network+Coverage Attention的方式只是在Embedding层进行级联,没有有效利用相关词汇的标签类型信息,为了进一步充分利用便签信息借鉴新的模型。Filed Gate+Dual Attention模型将Field信息与其他输入结构化的信息在Embedding层进行级联外,通过改造的Lstm网络单元对Field信息进行有效编码(与经典Lstm网络单元比,添加了一个由Field信息控制的门,来确定每一时间步中以前信息的保留或者丢弃),对比图如图4所示,蓝色部分为新增添的门。
 
图4 Filed Gate具体构成图
其次在解码过程模型中,其采用局部注意力机制与全局注意力机制组成的Dual Attention机制将结构化数据里Key域属性和Value描述扩展进行语义相关性融合建模,从而实现对生成内容的整体描述和归纳,进而将词汇的类型信息有效的结合在上下文中。
对于招聘业务,我们需要根据招聘方发布的招聘信息生成新的标题,帮助用户提升效率。为此我们结合Filed Gate+Dual Attention模型的优势,在此基础上对模型进行了改进,具体的模型构成如图5所示,将不同的职位标签类别作为key,标签对应的内容作为value,将key与value进行级联,采用指针模型的复制能力保证内容的准确性,其次整个模型最后为了避免生成重复信息,依然采用coverage attention机制对已编码部分进行降权。如下针对于招聘帖子的内容生成的最终如下所示:
输入:
年龄:16-40岁,优秀者可以扩宽到45岁 性别:男 学历:初中及以上学历
工作内容:客车承装车间的物料分拣与配送,长白班
基本薪资:基本工资2450、全勤100、餐补200、房补150、绩效0~100
综合薪资:3000+加班费
需求:10名,c1驾照即可
面试时间:周一到周五上午9-11:30,下午2-4
面试地点:河南某某厂区
输出:急招货运司机3k房补

图5 Filed Gate+Dual Attention改进模型架构

评测方法

标题生成的过程与单文档生成短摘要的过程类似,因此可以使用文本摘要评测算法Rouge(基于摘要中n元词(n-gram)的共现信息来评价摘要,是一种面向n元词召回率的评价方法)来对标题生成效果进行评估。在部分公开数据集CNN/Daily Mail上,进行多次迭代之后的Seq2seq模型效果理想,如下表1所示。  
表1 模型迭代效果评测
根据表1可以得知,我们改进的模型在评测指标方面相比Baseline有巨大的提升,相比指针网络以及指针生成网络分别有10%与13%的性能提升,生成的标题的可用率经过人工统计达到78%,另外我们还根据实际业务进行了离线效果评估,针对于招聘语料同样进行多个模型的对比,结果如下表2所示:

表2 不同模型效果评测
基于Baseline以及不同模型的迭代,分别在招聘语料上对结果进行统计,从中可以看出改进的模型对应的指标分别能够达到48.9%、23.34以及45.66%,在对比的模型中效果依然是最佳的。此外还结合实际的业务进行了测试,具体效果如图6所示,右侧是生成的标题,信息丰富,包含品牌信息、福利信息、工作环境、职位名称、经验要求:

图6  文本生成线上效果图

总结与展望

本文从标题生成系统的两种方法、模型迭代过程及评测来详细描述了如何由职位信息生成智能标题的实现过程。目前该系统已经进行测试。如图6所示,由于帖子在发布阶段没有infoid,通过用户id及职位类别、帖子内容匹配,对比使用生成标题的帖子和使用原标题的帖子,前者相比后者点击率提升7%左右,投递率提升5%左右。后续我们会继续在文本生成领域不断探索,进一步改进,同时将拓展更多的应用场景,用算法为招聘业务赋能,借助深度学习技术解决业务中的痛点。

作者简介:
高文龙,58同城-HRG-用户侧技术部-智能HR组-算法工程师
部门简介:
我们是HRG招聘技术团队,立志于通过我们的每行代码,借助技术的演进,实现中国人力资源服务产业的数字化变革。
2021年,我们在推进58招聘、赶集、招才猫三端APP的研发;我们在推进微聊、直播面试、AI面试间新连接模式的研发;我们在推进知识图谱标签化、用户画像、LBS挖掘、推荐架构升级等推荐场景连接效率提升的研发;我们在推进简历内容字体加密、传输加密、头像图片动态化、语音自动分析等提升简历数字资产安全和求职意愿真实性的研发;我们在推进魔方业务的系统重构,实现角色划分的交付模型;我们在推进人才测评、员工打卡等人力资源服务的SAAS化。
在充满变革的一年,我们的团队也在不断扩充,算法、数据、开发需求量大,感兴趣的同学可以将简历直接发送至: zengqinbang@58.com,期待更多伙伴的加入。
参考文献:
1.  Chopra S , Auli M , Rush A M . Abstractive Sentence Summarization with Attentive Recurrent Neural Networks[C]// Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2016.
2. See A , Liu P J , Manning C D . Get To The Point: Summarization with Pointer-Generator Networks[C]// Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2017.Table-to-text Generation by Structure-aware Seq2seq Learning
3. Chin-Yew Lin, “Rouge: A package for automatic evaluation of summaries,” in SLT, 2004.
4. Gatt A , Krahmer E . Survey of the State of the Art in Natural Language Generation: Core tasks, applications and evaluation[J]. Journal of Artificial Intelligence Research, 2017, 61(45):1-16.

推荐阅读:
58同城向量检索平台架构实践
帮帮商家版智能问答模型优化实践
搜索引擎中相似字符串查找那些事儿
从探索到实践,iOS动态库懒加载实录
直播预告 | 城市计算技术沙龙 - 58同城房价预估


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存